package com.ruoyi.flow.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 工作流业务对象
 *
 * @author zzneko
 * @date 2025-07-14
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class TWorkflowBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 流程类型
     */
    @NotNull(message = "流程类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;

    /**
     * 请假原因
     */
    @NotBlank(message = "请假原因不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reason;

    /**
     * 业务id
     */
    @NotNull(message = "业务id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String serviceId;

    /**
     * 流程实例id
     */
    private Long instanceId;

    /**
     * 节点编码
     */
    private String nodeCode;

    /**
     * 节点名称
     */
    private String nodeName;

    /**
     * 节点类型（0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关）
     */
    private Integer nodeType;

    /**
     * 流程状态（0待提交 1审批中 2 审批通过 3自动通过 4终止 5作废 6撤销 7取回  8已完成 9已退回 10失效）
     */
    private String flowStatus;


}
